package school.entity;

/*
 * 教师子类：继承Person，覆写printInfo()实现开课信息打印
 */
public class Teacher extends Person {
    // 子类私有属性：仅教师拥有的“已开课程”
    private Course openedCourse;

    // 子类构造方法：通过super()调用父类构造
    public Teacher(String id, String name, String gender) {
        super(id, name, gender); // 初始化父类的id/name/gender
    }

    // 开课方法：public修饰，允许test包调用
    public void openCourse(Course course) {
        this.openedCourse = course;
        course.setTeacherId(getId()); // 关联课程与教师ID（调用父类的getId()）
        System.out.println(getName() + "（教师）成功开设课程：" + course.getCourseName());
    }

    // 覆写父类的printInfo()：实现“打印教师开课信息”的个性化功能
    @Override
    public void printInfo() {
        System.out.println("\n=== 教师 " + getName() + " 的开课信息 ===");
        if (openedCourse != null) {
            System.out.println(openedCourse + "，教师ID：" + getId());
        } else {
            System.out.println("当前未开设任何课程");
        }
        System.out.println("======================");
    }

    // 子类属性的Getter：供外部获取已开课程（可选）
    public Course getOpenedCourse() {
        return openedCourse;
    }
}